home *** CD-ROM | disk | FTP | other *** search
/ Qu.......ke Neue Level / KroGer Software GmbH - Qu_ke.iso / UTILITY / PRG8.ZIP / F_WAD2.H < prev    next >
C/C++ Source or Header  |  1996-02-29  |  3KB  |  69 lines

  1. /*
  2.  * Copyright (C) 1996 by Raphael Quinet.  All rights reserved.
  3.  *
  4.  * Permission to use, copy, modify, and distribute this software and
  5.  * its documentation for any purpose and without fee is hereby
  6.  * granted, provided that the above copyright notice appear in all
  7.  * copies and that both that copyright notice and this permission
  8.  * notice appear in supporting documentation.  If more than a few
  9.  * lines of this code are used in a program which displays a copyright
  10.  * notice or credit notice, the following acknowledgment must also be
  11.  * displayed on the same screen: "This product includes software
  12.  * developed by Raphael Quinet for use in the Quake Editing Utilities
  13.  * project."  THIS SOFTWARE IS PROVIDED "AS IS" WITHOUT EXPRESS OR
  14.  * IMPLIED WARRANTY.
  15.  *
  16.  * More information about the QEU project can be found on the WWW:
  17.  * "http://www.montefiore.ulg.ac.be/~quinet/games/editing.html" or by
  18.  * mail: Raphael Quinet, 9 rue des Martyrs, B-4550 Nandrin, Belgium.
  19.  */
  20.  
  21. #ifndef _F_WAD2_H_
  22. #define _F_WAD2_H_
  23. /*
  24.  * F_WAD2.C - Read and write Quake WAD2 files.
  25.  */
  26.  
  27. /*
  28.  * The WAD2Directory structure is the structure used by QUAKE to order the
  29.  * data in its WAD2 files.
  30.  *
  31.  * Thanks to Olivier Montanuy for the information about the meaning of
  32.  * "dsize" and "compression", which I found in his "Unofficial Quake Specs".
  33.  */
  34. typedef struct WAD2Directory *WAD2DirPtr;
  35. struct WAD2Directory
  36. {
  37.    UInt32 offset;               /* offset to start of data */
  38.    UInt32 size;                 /* byte size of data in WAD2 file */
  39.    UInt32 dsize;                /* byte size of data when decompressed */
  40.    UInt8  dtype;                /* type of data:
  41.                    @ = raw data
  42.                    B = bitmap with header
  43.                    E = raw bitmap (no header)
  44.                    */
  45.    UInt8  compression;          /* type of compression:
  46.                    0 = no compression
  47.                    */
  48.    UInt16 padding;              /* not used (always 0) */
  49.    char   name[16];             /* name of data block */
  50. };
  51.  
  52. /* prototypes */
  53. WAD2DirPtr ReadWAD2Directory(FILE *wadfile, UInt32 offset, UInt16 *dirsize_r);
  54. UInt16     FindWAD2Entry(WAD2DirPtr dir, UInt16 dirsize, char *entryname);
  55. void       DumpWAD2Directory(FILE *outf, WAD2DirPtr dir, UInt16 dirsize);
  56. Bool       UnWAD2File(FILE *outf, FILE *wadfile, UInt32 offset, WAD2DirPtr dir,
  57.               UInt16 dirsize, UInt16 entrynum, char *prefixpath,
  58.               Bool convert);
  59.  
  60. Bool       WriteWAD2Header(FILE *wadfile, UInt32 *count_r, WAD2DirPtr *dir_r,
  61.                UInt16 *dirsize_r);
  62. Bool       AddWAD2Entry(FILE *wadfile, UInt32 *count_r, WAD2DirPtr *dir_r,
  63.             UInt16 *dirsize_r, char *entryname, UInt32 entrysize,
  64.             UInt8 entrytype);
  65. UInt32     WriteWAD2Directory(FILE *wadfile, UInt32 *count_r, WAD2DirPtr dir,
  66.                   UInt16 dirsize);
  67. #endif /* _F_WAD2_H_ */
  68. /* end of file */
  69.